首页 > 试题广场 >

无环单链表插值

[编程题]无环单链表插值
  • 热度指数:1958 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

有一个有序数组A和一个整数val,请你用A构造一个结点值有序的无环单链表,并对其插入一个点值为val的点,并且保证这个无环单链表依然有序。

给定包含链表的所有元素的值(从头结点开始)的数组A,同时给定val,请构造出这个无环单链表,并返回插入该val值后的头结点。

数据范围:
0 < A.size() <= 1000
0 <= A中的元素值 <= 1000
0 < val <= 1000

例如当数组A为[1,3,4,5,7],val为2时,插入val值后的链表变为{1,2,3,4,5,7},如下图所示:

示例1

输入

[1,3,4,5,7],2

输出

{1,2,3,4,5,7}

说明:本题目包含复杂数据结构ListNode,点此查看相关信息
class Solution:
    def insert(self , A: List[int], val: int) -> ListNode:
        # write code here
        A = sorted(A + [val])
        dummy = ListNode(0)
        head = ListNode(A[0])
        dummy.next = head
        for x in A[1:]:
            temp = ListNode(x)
            head.next = temp
            head = head.next
        return dummy.next

发表于 2022-07-26 15:32:36 回复(0)
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param A int整型一维数组 
# @param val int整型 
# @return ListNode类
#
class Solution:
    def insert(self , A: List[int], val: int) -> ListNode:
        # write code here
        A.append(val)
        A.sort()
        pre = ListNode(-1)
        cur = pre
        for i in A:
            cur.next = ListNode(i)
            cur = cur.next
        return pre.next
            

发表于 2022-05-22 12:39:56 回复(0)